Management of user events scheduled during a user absence period

ABSTRACT

User events scheduled during a user absence period are managed by identifying a user absence period and a buffer period on a user calendar. At least one calendaring repository is searched to determine whether there are user events with a due date coming due during the user absence period that were scheduled prior to a user defining the user absence period and a response is made to each located user event. Moreover, at least one calendaring repository is searched to determine whether there are user events with a due date coming due during the buffer period that were scheduled prior to the user defining the buffer period and a response is made to each located user event in a manner differently from responding to user events coming due during the user absence period.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/406,649, filed Mar. 18, 2009, entitled “IMPROVED MANAGEMENT OF USEREVENTS SCHEDULED DURING A USER ABSENCE PERIOD”, now allowed, thedisclosure of which is hereby incorporated by reference.

BACKGROUND OF THE INVENTION

This invention relates to the management of scheduled user events whenthe user is absent. Events to be managed are emails with a scheduled duedate or follow-up, meetings, chat appointments and instant messages withscheduled due dates.

Calendaring and collaboration tools provide the ability to scheduleevents comprising meetings, appointments, tasks or the like. Using theconventional calendar tools a user may organize and schedule meetings onone or more calendars and update or modify the information associatedwith the scheduled event. In addition, the user may check theavailability of other users before scheduling a meeting with them.Finally, conventional calendar tools permit the user to view his/herscheduled appointments by the day, week, or month.

Using the tools described a user may schedule a meeting, assign a task,schedule an online meeting or delivery due date, send an email, orreschedule a meeting. It is conceivable and likely to schedule a meetingor appointment with a friend or associate for a future date and theperson with whom the appointment is made becomes unavailable for theappointment due to a vacation, scheduling change, business trip orunplanned emergency. Before the person becomes unavailable, manuallynotifying or managing uses participating in the scheduled theappointments or meetings of the unavailability is cumbersome and errorprone.

SUMMARY OF THE INVENTION

According to aspects of the present invention, user events scheduledduring a user absence period are managed by identifying a user absenceperiod defined on a user calendar and identifying a buffer period, thebuffer period being at least one of a period of time before the userabsence period begins and a period of time after the user absence periodconcludes. User events are further managed by searching at least onecalendaring repository to determine whether there are any user eventswith a due date coming due during the user absence period that werescheduled prior to a user defining the user absence period andresponding, using a processor, to each user event scheduled prior to auser defining the user absence period and having a due date coming dueduring the user absence period. User events are still further managed bysearching at least one calendaring repository to determine whether thereare any user events with a due date coming due during the buffer periodthat were scheduled prior to the user defining the buffer period andresponding, using the processor, to each user event scheduled prior tothe user defining the buffer period and having a due date coming dueduring the buffer period, in a manner differently from responding touser events coming due during the user absence period.

Embodiments of the present invention may be implemented an apparatus, acomputer program product, and a system executing the operations of themethod described above. The apparatus and/or system implementation mayinclude a definition module, a search module, and a response module. Theapparatus and/or system implementation may also include a presentationmodule, a user interface module, a monitoring module, a detectionmodule, a reporting module, a response module, a configuration module.Each of these modules will be described in more detail below as exampleembodiments of the invention are described.

Reference throughout this specification to features, advantages, orsimilar language does not imply that all of the features and advantagesthat may be realized with an embodiment of the present invention shouldbe or are in any single embodiment of the invention. Rather, languagereferring to the features and advantages is understood to mean that aspecific feature, advantage, or characteristic described in connectionwith an embodiment is included in at least one embodiment of the presentinvention. Thus, discussion of the features and advantages, and similarlanguage, throughout this specification may, but do not necessarily,refer to the same embodiment.

Furthermore, the described features, advantages, and characteristics ofthe invention may be combined in any suitable manner in one or moreembodiments. One skilled in the relevant art will recognize that theinvention may be practiced without one or more of the specific featuresor advantages of a particular embodiment. In other instances, additionalfeatures and advantages may be recognized in certain embodiments thatmay not be present in all embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Understanding that these drawings depict only typical embodiments of theinvention and are not therefore to be considered to be limiting of itsscope, the invention will be described and explained with additionalspecificity and detail through the use of the accompanying drawings, inwhich:

FIG. 1 is an illustration of a calendar with user events scheduledduring a user period of absence, in accordance with one embodiment ofthe invention

FIG. 2 is a block diagram illustrating one embodiment of a system forimproved management of user events scheduled during a user absenceperiod, in accordance with one embodiment of the invention.

FIG. 3 is a block diagram illustrating another embodiment of aconfiguration module for improved management of user events scheduledduring a user absence period, in accordance with one embodiment of theinvention.

FIG. 4 is an illustration of a graphical user interface of a method forimproved management of user events scheduled during a user absenceperiod, in accordance with one embodiment of the invention.

FIG. 5 is a block diagram illustrating still another embodiment of amonitoring module for improved management of user events scheduledduring a user absence period, in accordance with one embodiment of theinvention.

FIG. 6 is a detailed schematic flow chart diagram illustrating oneembodiment of a method for improved management of user events scheduledduring a user absence period, in accordance with one embodiment of theinvention.

FIG. 7 is a block diagram of one embodiment of a hardware system capableof executing an embodiment for improved management of user eventsscheduled during a user absence period, in accordance with oneembodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Many of the functional units described in this specification have beenlabeled as modules, in order to more particularly emphasize theirimplementation independence. For example, a module may be implemented asa hardware circuit comprising custom VLSI circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A module may also be implemented in programmablehardware devices such as field programmable gate arrays, programmablearray logic, programmable logic devices or the like.

Modules may also be implemented in software for execution by varioustypes of processors. An identified module of executable code may, forinstance, comprise one or more physical or logical blocks of computerinstructions which may, for instance, be organized as an object,procedure, or function. Nevertheless, the executables of an identifiedmodule need not be physically located together, but may comprisedisparate instructions stored in different locations which, when joinedlogically together, comprise the module and achieve the stated purposefor the module.

Indeed, a module of executable code may be a single instruction, or manyinstructions, and may even be distributed over several different codesegments, among different programs, and across several memory devices.Similarly, operational data may be identified and illustrated hereinwithin modules, and may be embodied in any suitable form and organizedwithin any suitable type of data structure. The operational data may becollected as a single data set, or may be distributed over differentlocations including over different storage devices.

Reference throughout this specification to “one embodiment,” “anembodiment,” or similar language means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the invention. Thus,appearances of the phrases “in one embodiment,” “in an embodiment,” andsimilar language throughout this specification may, but do notnecessarily, all refer to the same embodiment.

As will be appreciated by one skilled in the art, the embodiments of theinvention may be embodied as a method, system, or computer programproduct. Accordingly, the embodiments of the invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, the embodiments of the invention may take the form of acomputer program product on a computer-usable storage medium havingcomputer-usable program code embodied in the medium.

Any suitable computer usable or computer readable medium may beutilized. The computer-usable or computer-readable medium may be, forexample but not limited to, an electronic, magnetic, optical,electromagnetic, or semiconductor system, apparatus, device. Morespecific examples (a non-exhaustive list) of the computer-readablemedium would include the following: a portable computer diskette, a harddisk, a random access memory (RAM), a read-only memory (ROM), anerasable programmable read-only memory (EPROM or Flash memory), anoptical fiber, a portable compact disc read-only memory (CD-ROM), anoptical storage device, a transmission media such as those supportingthe Internet or an intranet, or a magnetic storage device. Note that thecomputer-usable or computer-readable medium could even be paper oranother suitable medium upon which the program is printed, as theprogram can be electronically captured, via, for instance, opticalscanning of the paper or other medium, then compiled, interpreted, orotherwise processed in a suitable manner, if necessary, and then storedin a computer memory. In the context of this document, a computer-usableor computer-readable medium may be any medium that can contain, store,communicate, or transport the program for use by or in connection withthe instruction execution system, apparatus, or device. The computerusable program code may be transmitted using any appropriate medium,including but not limited to the Internet, wireless, optical fibercable, RF, etc.

Computer program code for carrying out operations of the embodiments ofthe invention may be written in an object oriented programming languagesuch as Java, Smalltalk, C++ or the like. However, the computer programcode for carrying out operations of the embodiments of the invention mayalso be written in conventional procedural programming languages, suchas the “C” programming language or similar programming languages. Theprogram code may execute entirely on the user's computer, partly on theuser's computer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

The embodiments of the invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

Furthermore, the described features, structures, or characteristics ofthe invention may be combined in any suitable manner in one or moreembodiments. In the following description, numerous specific details areprovided, such as examples of programming, software modules, userselections, network transactions, database queries, database structures,hardware modules, hardware circuits, hardware chips, etc., to provide athorough understanding of embodiments of the invention. One skilled inthe relevant art will recognize, however, that the invention may bepracticed without one or more of the specific details, or with othermethods, components, materials, and so forth. In other instances,well-known structures, materials, or operations are not shown ordescribed in detail to avoid obscuring aspects of the invention.

An automated tool to search multiple calendaring repositories and orother schedule repositories for meetings, and items with a requestedfollow-up date or start date or end date that comes due during the timeperiod that the user is to be unavailable is needed. Furthermore, a toolthat will automatically handle these requests when the user is out ofthe office is advantageous. The different embodiments of the inventionsolve this problem and allow the user to plan for the future by defininghow requests coming due during the unavailable period will be handled.

Furthermore, the embodiments of the invention allow the user to reviewthe predefined responses for events scheduled during an absence periodwhen he/she activates the tool and then modify a response if desired.Additionally, the user may plan into the future and build responsetemplates for periods of time when he/she will be unavailable. Finally,the tool may provide a summary of the events handled during the absenceperiod.

The embodiments of the invention have been developed to provide animproved method for managing user events scheduled during a user absenceperiod.

A method for managing user events scheduled during a user absence periodcomprises determining a user absence period having a start date and anend date, the user absence period defined on a user calendar, detectinga new user event scheduled during the user absence period, the userevent comprising a start/end date that falls within the user absenceperiod, automatically responding to the new user event scheduled duringthe user absence period, and the new user event scheduled after the userabsence period is defined.

The solution defines the user absence period, in response to user inputfrom a user that manages the user calendar. Each user event may compriseone or more of an electronically scheduled meeting, an email having afollow-up due date, a chat appointment, and an instant message(IM) to-doitem.

The solution automatically responds by applying one or more responserules in response to a user event satisfying a user event criteria, theuser event criteria may comprise one or more of a user eventcommunication type, a user event action type, a user event sender, auser event distribution list, a user event attachment, a buffer timeperiod associated with the user absence period, and a priority level ofthe user event.

The solution defines one or more response rules by way of a userinterface, the response rules comprising an action selected from thegroup comprising, declining the new user event, accepting the new userevent, delegating the new user event, notifying an organizer of the newuser event, notifying a distribution list of the new user event, andignoring the new user event.

The solution searches at least one calendaring repository for one ormore scheduled user events having a due date during a user absenceperiod, the one or more scheduled user events scheduled prior todefining the user absence period. In certain embodiments, thecalendaring repository includes more items than simply dates anddeadlines of a calendar. In certain embodiments, the calendaringrepository includes a variety of electronic media used to track andmanage a user event including emails with follow-up dates, taskassignments with due dates, chat items that include todos or appointmentdates, and the like. The solution interactively responds to eachscheduled user event coming due during the user absence period andprompts the user to manually manage one or more of the scheduled userevents coming due during the user absence period.

In one embodiment, the user absence period comprises a buffer timeperiod. There may be one buffer time period before a user absence periodand/or one buffer time period after a user absence period. In oneembodiment, the solution sets a buffer time period before the userabsence period begins and after the user absence period concludes inresponse to user input, applying one or more user defined response rulesin response to a user event satisfying user event criteria.

FIG. 1 illustrates a system 100 for displaying a user calendar 110.Specifically, the user calendar 110 depicts a two week period of time,and includes events scheduled to occur during the two week period oftime. The events appear on a user calendar 110 and require the user ofthe user calendar 110 to take an action, such as attend a meeting, orcomplete a task.

The user calendar 110 depicts a user absence period 120. The userabsence period 120 illustrating a period of time when the user of theuser calendar 110 plans to be unavailable to attend meetings, respond toemails, attend chat appointments or respond to instant messages (IM's).The unavailability of the user may be due to a vacation, a businesstrip, or just needing a period of undisturbed time.

Additionally, the user calendar 110 illustrates a buffer period 130, thebuffer period 130 is a period of time immediately before a user absenceperiod 120 begins and/or a period of time immediately after the userabsence period 120 concludes. The buffer period 130 may represent aperiod of time when the user is available but at a reduced productivitylevel due to preparing for the user absence period 120. The user absenceperiod 120 and the buffer period 130 may be adjusted to meet the needsof the user and FIG. 1 is simply an illustration of one possible usercalendar 110.

The user calendar 110 includes user events 150 a-e with user events 150a-d scheduled during a user absence period 120. In particular, the userevents 150 a-e may consist of an email user event 150 a, a meeting userevent 150 b, a chat appointment user event 150 c, an instant message(IM) appointment user event 150 d, a task assignment (a ToDO) (notshown), and finally an email user event 150 e coming due during a bufferperiod 130.

The user events 150 a-e are only a representation of any number of userevents 150 a-e that could be scheduled during the user absence period120. As used herein, the term “user event” is intended to mean one ormore of an activity that includes the user and has an associated dateand/or time. Thus, a user event may comprise a meeting, an assignment, atelephone conference, a project submission deadline, a project due date,a personal meeting appointment, an online chat or meeting appointment,and the like. The user events 150 a-e represent events that users otherthan the calendar owner may schedule to include the owner. These eventsmay arrive by way of a synchronous communication with the calendar ownersuch as with a chat session or by way of an asynchronous communicationsuch as with email and/or certain chat technologies. Additionally, theowner of the user calendar 110 may schedule the user events 150 a-e.

FIG. 1 is a graphical representation of a user calendar 110, identifyinga user absence period 120 and a buffer period 130. The user calendar 110includes user events 150 a-e scheduled to come due during the userabsence period 120. Conversely, a user calendar 110 may be representedin a separate file that may define and/or describe the user absenceperiod 120, the buffer period 130, and the user events 150 a-e. Theseparate file may comprise a plain text file, an XML file, a word file,a spreadsheet or the like. The file may exist in RAM, on local storage,on a network storage repository, or the like.

Before a user leaves for a vacation, takes a business trip or otherwisebecomes unavailable a user without the embodiments of the inventionsearches multiple calendaring repositories for user events 150 a-e witha due date coming due during a user absence period 120 or buffer period130. Once identified, the user must decide how each user event 150 a-ehaving a due date coming due during a user absence period will behandled. In addition new user events 150 a-e may be scheduled during theuser absence period 120 or buffer period 130. Consequently the need fora system that manages the user events 150 a-e scheduled during the userabsence period 120 assists the user in managing the user events 150 a-e.An apparatus, system, and method in accordance with the embodiments ofthe invention saves time over a manual process requiring searchingcalendaring repositories for scheduled user events 150 a-e and notifyingusers that may want to schedule a user event 150 a-e.

FIG. 2 illustrates one embodiment of a system 200 for improvedmanagement of user events scheduled during a user absence period 120.The system 200 includes a configuration module 220 and a monitoringmodule 230. The system 200 runs in a software execution environmentwhich may include an Operating System (OS), and support user interfacetools such as stand alone or web-based calendaring systems. The OS maybe Windows, Macintosh, UNIX, Linux or the like.

The system 200 may comprise a workstation application, a servlet, adesktop application, a server application, a client application, aweb-based application, a memory 210 and a processor 240.

In one embodiment, the configuration module 220 and the monitoringmodule 230 are written in a programming language such as Java, C++, C,or the like. The configuration module 220 and monitoring module 230 mayexecute in an environment consisting of a small or large stand alone ornetworked system of laptops, workstations, or mainframe computers. Theconfiguration module 220 and monitoring module 230 are configured toexecute applications, and may include a Database Management System(DBMS). The configuration module 220 and monitoring module 230 mayconnect to the World Wide Web (WWW). The configuration module 220 andmonitoring module 230 may be executing in the same computing device orin geographically different locations from each other.

The configuration module 220 interacts with the user to define andrevise the management of user events 150 a-e. In particular, theconfiguration module 220 defines the user absence period 120 and bufferperiod 130. In addition, the configuration module 220 searches one ormore calendaring repositories for scheduled user events having a duedate during the user absence period 120. The configuration module 220presents user events 150 a-e scheduled during the user absence period120. In one embodiment, an owner of the calendar 110 uses theconfiguration module 220 to quickly identify and manage user events 150a-e that are scheduled during the user absence period 120 or arescheduled to be completed during the user absence period 120.

The monitoring module 230 interacts with the system 200 to detect,respond to and report user events 150 a-e scheduled during a userabsence period 120. In particular, the monitoring module 230 detects theuser events 150 a-e scheduled to come due during the user absence period120. In addition, the monitoring module 230 may in certain embodimentsrespond to the user event 150 a-e with a user defined automatic action.Additionally, the monitoring module 230 may report the number of userevents 150 a-e responded to. In one embodiment, the user events 150 a-eare events scheduled by users requiring the owner of the user calendarto attend a meeting or complete a task.

FIG. 3 illustrates one embodiment of a configuration module 220 forimproved management of user events 150 a-e scheduled during a userabsence period 120. The configuration module 220 includes a definitionmodule 310, a presentation module 360, and a search module 370. ThePresentation module 360 includes a user interface module 362 and aninput module 364.

The configuration module 220 interacts with the owner of a user calendar110 to configure and present a user absence period 120. Specifically,configuration module 220 configures a period of time that the owner of auser calendar 110 may be on vacation, a business trip or otherwiseunavailable. In one embodiment, the configuration module 220 presents agraphical user interface (GUI) and prompts the user to enter a userabsence period 120 starting date and ending date.

Optionally, the configuration module 220 interacts with the owner of auser calendar 110 to configure and present a buffer period 130. Inparticular, the configuration module 220 configures a buffer period 130.The buffer period 130 being a period of time before the user absenceperiod 120 begins and a period of time after the user absence 120concludes. In one embodiment, the buffer periods 130 are of equalduration. In another embodiment, the buffer periods 130 are not of equalduration. It may be of value to the owner of a user calendar 110 toconfigure the buffer period 130 before the user absence 120 begins to beof different during duration.

The configuration module 220 interacts with a system 200 to save theuser calendar. In one embodiment, the user calendar 110 may be saved ina repository (not shown) of user calendars 110. The repository of usercalendars 110 is capable of storing multiple user calendars 110.

In one embodiment, the user absence period 120 may comprise a start datefollowed by a duration. In yet another embodiment, the user absenceperiod 120 may comprise an offset from the beginning of a calendar year,for example: the user absence period 120 may commence 50 days frommidnight January 1^(st) and conclude 60 days from midnight January1^(st). In an alternative embodiment, the user absence period 120 maycomprise a start month/day/year and end month/day/year.

In one embodiment, the configuration module 220 receives the userabsence period 120 from a user that manages the user calendar 110. Inyet another embodiment, the configuration module 220 may determine theuser absence period 120 via a script, an extensible markup language(XML) input file, an application program interface (API), a command lineinterface, or the like. In yet another embodiment, a graphical userinterface (GUI) may be used to input the user absence period 120.

Optionally, the owner of a user calendar may configure a buffer period130 to begin a period of time before the user absence period 120 begins,and to conclude a period of time after a user absence period 120concludes. In one embodiment, the owner of the calendar may configurethe before a buffer period 130 to be the same length as the after bufferperiod 130. Alternatively, the owner of the calendar may configure thebefore buffer period 130 and after buffer period to be of unequallengths. In one embodiment, the calendar owner may configure only abefore buffer period 130 or only an after buffer period 130.

The definition module 310 interacts with a user to define criteria andautomatic responses. In particular, the definition module 310 definesthe user event criteria 320 to compare with new user events 540 (FIG.5), and the associated user response rules 340. In one embodiment, if anew user event 540 (FIG. 5) satisfies the defined user event criteria320 the system 200 responds automatically with an action defined by theuser response rules 340.

Additionally, the definition module 310 interacts with the presentationmodule 360 to present information to and receive information from theuser. Specifically, the definition module 310 interacts with the userinterface module 362 to present a user calendar 110 and prompt thecalendar owner to define user event criteria 320 and user response rules340. In one embodiment, the system 200 uses the presentation module 360to present a graphical user interface (GUI) to define user eventcriteria 320 and user response rules 340.

The presentation module 360 interacts with the user interface module 362to output graphics and text, and with the input module 364 to receiveuser input. In particular, the presentation module 360 presents a userabsence period management page to the user interface module 362 andprompts a calendar owner to enter user event criteria 320 and userresponse rules 340.

The user interface module 362 interfaces with an output device topresent a user absence period management page. The owner of a usercalendar 110 configures the user event criteria 320 that the monitoringmodule 230 uses to determine if a new user event 150 a-e satisfies thecriteria for an automatic response action. In one embodiment, the userinterface module 362 outputs a GUI, a text menu, a printer menu a diskfile or the like.

In one embodiment, the input module 364 interfaces with input devices toreceive user event criteria 320 and user response rules 340 from akeyboard, mouse, disk file, or the like.

The definition module 310 interacts with the owner of a user calendar110 to define the user event criteria 320. User event criteria 320 is aset of criteria a calendar owner user wants to use to identify userevents 150 a-e coming due during the user absence period 120. Inparticular, the calendar owner defines the criteria values to determineif a user event 150 a-e satisfies the requirements for an automaticresponse. Below are representative examples of a few possible user eventcriteria 320 category types: 1) communication type 332, comprising anemail, a chat or an IM, a task assignment. 2) action type 324,comprising a meeting invitation, a task assignment (a ToDO), an emailwith a follow-up to do, a chat appointment or an IM with a to do. 3)sender type 326, a sender of the communication. 4) distribution listtype 328, all users included on the distribution list. 5) attachmenttype 330, any attachments to the user event 150 a-e 6) priority leveltype 332, a user event 150 a-e priority level, and the like. User eventcriteria 320 may include whether the user event 150 has a start/end dateduring the absences period or during the buffer period or a combinationof these. With such user event criteria 320 set, the user can thendefine whether events satisfying that criteria will have one or moreresponse rules applied. The automated response rules may define anaction or a response that the system takes based on the match. Forexample in one embodiment a match may result in a notification beingsent to a user event organizer automatically. Alternatively, or inaddition, the automatic response to user events satisfying the userevent criteria 320 may result in the user event being displayed for auser such that the user can then manually determine what responses aremade for each user event identified.

The definition module 310 interacts with the owner of a user calendar110 to define the user response rules 340. Specifically, the userresponse rules 340 are automatic actions the monitoring module 230implements when a user event 150 a-e satisfies the user event criteria320 defined by the calendar owner. Below are representative examples ofa few possible automatic actions: 1) declining the invitation orrequest, 2) accepting the invitation or request, 3) delegating theinvitation or request, 4) notifying members of the distribution list ofthe user absence period, 5) notifying the organizer of the user absenceperiod and/or of what action has been taken on the request/invitation,and ignoring the the invitation or request. The flexibility to defineuser event criteria 320 and customize a response is advantageous formanaging user events 150 a-e scheduled during a user absence period 120

In one embodiment, user events 150 a-e with a due date during the userabsence period 120 use the same user event criteria 320 and userresponse rules 340 as for user events 150 a-e with a due date during thebuffer period 130. Alternatively, the owner of a user calendar 110 maydefine different user event criteria 320 for user events 150 a-e with adue date during the user absence period 120 than user events 150 a-ewith a due date during the buffer period 130. Additionally, the owner ofa user calendar 110 may define different user response rules 340 foruser events 150 a-e with a due date during the user absence period 120than user events 150 a-e with a due date during the buffer period 130.

Below is a table of examples of possible user events types and actionsthat can be taken for those events.

User event type Action meeting invitation 1. decline attending themeeting. 2. delegate attending the meeting to someone. 3. notify thedistribution list that the user will not attend the meeting. 4. Ignorethe meeting invitation. email with a follow-up 1. delegate thefollow-up. 2. notify the sender that the user will not complete thefollow-up. 3. ignore the email. chat messages 1. delegate the chatinvitation. 2. notify the chat organizer that the user will be unable toattend. 3. Ignore the chat appointment. 4. decline instant message(IM) 1. delegate the IM invitation. 2. notify the IM organizer that theuser will be unable to attend. 3. ignore the IM inviation. 4. declineTask assignment (ToDo) 1. delegate the ToDo assignment. 2. notify theToDo assigner that the user will be unable to attend. 3. ignore the ToDoassignment. 4. decline

The search module 370 interacts with the system 200 to search andpresent user events 150 a-e that satisfies the user event criteria 320.Specifically, the search module 370 searches one or more calendaringrepositories 372 searching for user events 150 a-e that satisfiescriteria defined by the owner of a user calendar 110. Next the searchmodule 370 presents the user events 150 a-e to the owner of the usercalendar 110. In one embodiment, the search module 370 searches localand remote calendaring repositories (connected by some form ofelectronic network to the system 200) for scheduled user events 150 a-ethat satisfy the user event criteria 320 defined by the owner of theuser calendar 110. The search module 370 interacts with the presentationmodule 360 to present the scheduled user events 150 a-e to the calendarowner.

The presentation module 360 interacts with a calendar owner to present,review, modify, and respond to the user events 150 a-e located by thesearch module 370. The presentation module 360 interacts with the searchmodule 370 to receive scheduled user events 150 a-e. In one embodiment,the configuration module 220 applies the user response rules 340 to theuser events 150 a-e located by the search module 370 to define anautomated action associated with the scheduled user event 150 a-e. Thepresentation module 360 interacts with the user interface module 362 topresent the scheduled user event 150 a-e and associated action. In oneembodiment, the presentation module 360 prompts an owner of a usercalendar 110 to accept or modify the action. Next, the presentationmodule 360 interacts with the input module 364 to receive a responsefrom the owner of the user calendar 110.

In one embodiment, the user interface module 362 interacts with outputdevices to present a scheduled user event 150 a-e and associated actionto the owner of a user calendar 110. The output device may be a devicecapable of displaying a graphical user interface (GUI), a displaydevice, a printer, a disk file or the like.

FIG. 4 illustrates one embodiment, of a Graphical User Interface (GUI)410 to present user events 150 a-e found in a storage repository 372.The presentation module 360 communicates with the GUI 410 to presentuser events 150 a-e found in the storage repository 372 to the owner ofa user calendar 110.

The GUI 410 displays characteristics of the user events 150 a-e to theowner of the user calendar, including: the date/time 462 of the userevent 150 a-e, the communication 464 type, the description 466, andfinally the automatic user action 468. Also, the GUI 410 may include aselection column 460 for selecting the user event 150 a-e. Afterreviewing the user event 150 a-e and the action 468 the owner of theuser calendar 110 may accept the action 468. Conversely the calendarowner may decide to modify the action to one or more of decline, notify,delegate or ignore. In one embodiment, the ability of the owner of theuser calendar 110 to review and modify the action 468 is of value inmanaging user events 150 a-e. In one embodiment, the user selects theuser event using a check box 460 on the user absence period managementpage 420. Then the user selects an option from the response actionoptions 450.

In one embodiment, the system 200 may prompt the owner of the usercalendar 110 when the system 200 locates a user event 150 a-e thatsatisfies the user event criteria 320. Prompting the calendar owner mayinclude placing the new user event 150 a-e identified in the repository372 on the GUI 410. In one embodiment, the user may respond to theprompt by clicking on the select 460 box for the user event 150 a-e.Next the user selects a action response 450 for the user event 150 a-e.The user action option 450 comprise one or more of declining 342,accepting 344, delegating 346, notifying the distribution 348 list,notifying the organizer 350, and ignoring 352. If no modification optionis selected, the system 200 may determine the current automatic userresponse 468 to be acceptable. After the user has responded to theprompt, the user event 150 a-e, the select 460 field, the date/time 462field, the description 466 column, and action 468 field may becomeunselectable indicating the user has responded to the prompt.

FIG. 5 illustrates one embodiment of a monitoring module 230 forimproved management of user events 150 a-e scheduled during a userabsence period 120. The monitoring module 220 includes a detectionmodule 510, a response module 520, and a reporting module 530.

The monitoring module 230 interacts with the system 200 to detect,respond and report user events 150 a-e scheduled during a user absenceperiod 120. In certain embodiments, the monitoring module 230 isincorporated with or plugs into an existing calendaring system.Alternatively, the monitoring module 230 is a stand-alone softwarecomponent in communication with an existing calendaring system.

The monitoring module 230 detects one or more user events 150 a-escheduled to come due during the user absence period 120. In addition,the monitoring module 230 responds to the user event 150 a-e with a userdefined automatic action. Additionally, the monitoring module 230reports the number of user events 150 a-e responded to. In oneembodiment, the user events 150 a-e are events scheduled by usersrequiring the owner of the user calendar to attend a meeting or completea task during the user absence period. In certain embodiments, thecalendar owner may define a user response rule 340 for high priority orhighly sensitive or anticipated user events 150 a-e. In response to suchhigh priority or highly sensitive or anticipated user events 150 a-e theautomated action may be to notify the calendar owner by way of someprivate communication medium such as an alternative email address, textmessage number, phone number, or the like.

The detection module 510 detects new user events 540. In particular, thedetection module 510 detects new user events 540 scheduled during a userabsence period 120 with a due date during the user absence period 120.In one embodiment, the detection module 510 watches in-coming userevents 540, if the user event 540 satisfies user event criteria 320 thedetection module 510 calls the response module 520.

The response module 520 interacts with the system 200 to respond to newuser events 540. Specifically, the response module 510 in certainembodiments responds with an automatic action defined by the owner of auser calendar 110 in the user response rules 340.

The reporting module 530 in certain embodiments may interact with theowner of a user calendar 110 to report on the new user events 150 a-eresponded to. In particular, the reporting module 530 reports on the newuser events 150 a-e detected and responded to during a user absenceperiod 120. In one embodiment, the user reporting module 530 reports thetotal number of user events 150 a-e detected during the user absenceperiod 120, including the user events 150 a-e responded to and the userevents 150 a-e not responded to. In another embodiment, the reportingmodule 530 reports the user events 150 a-e responded to and theautomatic action response.

In one embodiment, the owner of a user calendar 110 may use thereporting module 530 to quickly determine the number and type of userevents 150 a-e responded to during the user absence period 120. Thereporting module 530 may be of value in determining how well the ownerof a user calendar managed the user events 150 a-e during the userabsence period 120. Also, the calendar owner may quickly determine ifthe user event criteria 320 or user respond rules 340 need to beadjusted before the next user absence period 120.

FIG. 6 illustrates one embodiment of a method 600 for improvedmanagement of user events 150 a-e scheduled during a user absence period120. The operations may be implemented by the executed operations of acomputer program product. The method 600 begins 602 when a definitionmodule 310 defines 604 a user absence period 120. The definition module310 defines a start date and end date for the user absence period 120.In one embodiment, the user absence period 120 may be an off-set fromthe beginning of the year. Optionally, the user absence period may beinput from a database, a website, a configuration file, XML file, textfile or the like.

Next, the definition module 310 defines 606 the user event criteria 320.In one embodiment, the definition module 310 defines the parameters forthe user event criteria 320 to compare with already scheduled userevents 150 a-e. In another embodiment, when a system 200 is watching fornew user events 540 the monitoring module 230 compares new user events540 against the user event criteria 320.

Next, the definition module 310 defines 608 the user response rules 340.The user response rules 340 define the actions to execute when themonitoring module 230 determines that a scheduled user event 150 a-e inthe storage repository 372 satisfies the user event criteria 320. Inanother embodiment, the monitoring module 230 compares new user events540 with the user event criteria 320 to determine if a match exists. Theuser response rules 340 comprise one of declining 342 a user event 150a-e, accepting 344 a user event 150 a-e, delegating 346 a user event 150a-e, notifying the distribution 348 of a user event 150 a-e, notifyingthe organizer 350 of a user event 150 a-e, and ignoring 352 a user event150 a-e.

Optionally, the configuration module 220 may define 610 the bufferperiod 130 for user events 150 a-e. The buffer period 130 is a period oftime before the user absence period 120 begins and/or after the userabsence period 120 concludes. Advantageously, the user may set adifferent a user response 340 for a user event 150 a-e that comes dueduring the buffer period 130 than for a user event 150 a-e that comesdue during the user absence period 120.

Next, a determination 612 is made whether a storage repository 372includes user events 150 a-e coming due during the user absence period120. If so, the search module 370 retrieves the storage repository 372for user events 150 a-e that satisfy the user event criteria 320. Next,the presentation module 360 optionally presents 614 the user events 150a-e on a graphical user interface 410. Alternatively, the presentationmodule 360 may direct the user events 150 a-e to a disk file, emailmessage, printer or the like. In one embodiment, the search module 370accepts wild card search options.

Next, in one embodiment, the presentation module 360 prompts 616 theowner of the user calendar 110 to manage the user event 150 a-escheduled during one or more user absence periods 120.

Next, the owner of a user calendar 110 interacts with the user interface362 to manage 618 the user events 150 a-e. In one embodiment, the usermay accept 322 the automatic user response 464 associated with the userevent 150 a-e. In another embodiment, the GUI 410 allows the owner ofthe user calendar 110 to modify the automatic user response.

Next, a determination 626 is made if more user events 150 a-e wereretrieved. If so, the method 600 returns to step 614. If not, the method600 ends 628.

If the determination 612 is made that no user events 150 a-e arecurrently scheduled during the user absence period 120, the system 200may automatically enter a monitoring mode. In monitoring mode, thedetection module 510 detects 620 new user events 540 sent to the ownerof the calendar that satisfies the predefined user event criteria 320.The response module 520 responds 622 to the new user event 540 with anautomatic user response associated with the user event 540. Next, thesystem 200 determines if the user absence period 120 and buffer period130 have concluded 624. If so, the method 200 ends 628. If not, themethod 600 returns to step 620 to continue monitoring new user events540 sent to this user that satisfy the predefined user event criteria320.

A user may configure one or more user absence periods 120 and bufferperiods 130 as templates. Each template may define the user absenceperiod 120, the buffer period 130, user event criteria 320 and userresponse rules 340. In one embodiment, the user may define a vacationtemplate, a business travel template, a do not disturb template or thelike. It is of value in managing user events 150 a-e to have thecapability to define templates in advance, then the owner of a usercalendar 110 only needs to enable the template for the respective userabsence period 120.

FIG. 7 illustrates a schematic block diagram of one embodiment of anelectronic device suitable for executing computer program code for oneor more embodiments of the system 200. In certain embodiments, theelectronic device is a computer. The device may constitute any type ofelectronic equipment, including a tablet computer, a PDA, and the like.

The device may include a processor or CPU 704. The CPU 704 may beoperably coupled to one or more memory devices 702. The memory devices702 may include a non-volatile storage device 706 such as a hard diskdrive or CD ROM drive, a read-only memory (ROM) 708, and a random accessvolatile memory (RAM) 710.

The computer in general may also include one or more input devices 712for receiving inputs from a user or from another device. The inputdevices 712 may include a keyboard, pointing device, touch screen, orother similar human input devices. Similarly, one or more output devices714 may be provided within or may be accessible from the computer. Theoutput devices 714 may include a display, speakers, or the like. Anetwork port such as a network interface card 716 may be provided forconnecting to a network.

Within an electronic device such as the computer, a system bus 718 mayoperably interconnect the CPU 704, the memory devices 702, the inputdevices 712, the output devices 714, the network card 716, and one ormore additional ports 720. The ports may allow for connections withother resources or peripherals, such as printers, digital cameras,scanners, and the like.

The computer also includes a power management unit 722 in communicationwith one or more sensors 724. The power management unit 722automatically adjusts the power level to one or more subsystems of thecomputer. Of course, the subsystems may be defined in various manners.In the depicted embodiment, the CPU 704, ROM 708, and RAM 710 maycomprise a processing subsystem. Non-volatile storage 706 such as diskdrives, CD-ROM drives, DVD drives, and the like may comprise anothersubsystem. The input devices 712 and output devices 714 may alsocomprise separate subsystems.

FIG. 7 illustrates one embodiment of a system 700 for improvedmanagement of user events 150-154 scheduled during a user absence period120. The system 700 of FIG. 7, may execute the instructions of theconfiguration module 220 and monitoring module 230 for improvedmanagement of user events 150 a-e scheduled during a user absence period120. The configuration module 220 and the monitoring module 230 mayexecute on the same enclosure or on different enclosures.

What is claimed is:
 1. A method for managing user events scheduledduring a user absence period, the method comprising: identifying a userabsence period defined on a user calendar; identifying a buffer period,the buffer period being at least one of a period of time before the userabsence period begins and a period of time after the user absence periodconcludes; searching at least one calendaring repository to determinewhether there are any user events with a due date coming due during theuser absence period that were scheduled prior to a user defining theuser absence period; responding, using a processor, to each user eventscheduled prior to a user defining the user absence period and having adue date coming due during the user absence period; searching at leastone calendaring repository to determine whether there are any userevents with a due date coming due during the buffer period that werescheduled prior to the user defining the buffer period; and responding,using the processor, to each user event scheduled prior to the userdefining the buffer period and having a due date coming due during thebuffer period, in a manner differently from responding to user eventscoming due during the user absence period.
 2. The method of claim 1,wherein identifying a buffer period comprises identifying a bufferperiod that includes both a period of time before the user absenceperiod begins and a period of time after the user absence periodconcludes.
 3. The method of claim 1, wherein responding to each userevent scheduled prior to a user defining the user absence period, andresponding to each user event scheduled prior to the user defining thebuffer period comprises: presenting each scheduled event to an owner ofthe calendar; requiring the owner to select an action for each presentedevent; and implementing the selected action for each presented event. 4.The method of claim 3, wherein requiring the owner to select an actionfor each presented event comprises: providing a default action for atleast one presented event; and allowing the owner to modify the defaultaction.
 5. The method of claim 1, further comprising: defining userevent criteria; defining user response rules; searching for events thatsatisfy the defined event criteria; and implementing an associated userresponse rule to a select event that satisfies a corresponding eventcriteria.
 6. The method of claim 5, wherein: defining user responserules comprises defining different response rules for events within thebuffer period from events within the user absence period; and respondingto each user event scheduled prior to the user defining the bufferperiod in a manner differently from responding to user events coming dueduring the user absence period, comprises: implementing a first userresponse rule when a select event is due within the user absence period,and implementing a second user response rule different from the firstuser response rule when the select event is due within the bufferperiod.
 7. The method of claim 1, further comprising: defining userevent criteria for the user absence period and the buffer period;defining user response rules for the user absence period and the bufferperiod; configuring a template that comprises: the duration of the userabsence period and the buffer period; the defined user event criteria;and; the defined user response rules.
 8. A non-transitorycomputer-readable storage device with an executable program storedthereon, wherein the program instructs a microprocessor to manage userevents scheduled during a user absence period, comprising: program codefor identifying a user absence period defined on a user calendar;program code for identifying a buffer period, the buffer period being atleast one of a period of time before the user absence period begins anda period of time after the user absence period concludes; program codefor searching at least one calendaring repository to determine whetherthere are any user events with a due date coming due during the userabsence period that were scheduled prior to a user defining the userabsence period; program code for responding, using a processor, to eachuser event scheduled prior to a user defining the user absence periodand having a due date coming due during the user absence period; programcode for searching at least one calendaring repository to determinewhether there are any user events with a due date coming due during thebuffer period that were scheduled prior to the user defining the bufferperiod; and program code for responding, using the processor, to eachuser event scheduled prior to the user defining the buffer period andhaving a due date coming due during the buffer period, in a mannerdifferently from responding to user events coming due during the userabsence period.
 9. The non-transitory computer-readable storage deviceof claim 8, wherein the program code for identifying a buffer periodcomprises program code for identifying a buffer period that includesboth a period of time before the user absence period begins and a periodof time after the user absence period concludes.
 10. The non-transitorycomputer-readable storage device of claim 8, wherein the program codefor responding to each user event scheduled prior to a user defining theuser absence period, and responding to each user event scheduled priorto the user defining the buffer period comprises: program code forpresenting each scheduled event to an owner of the calendar; programcode for requiring the owner to select an action for each presentedevent; and program code for implementing the selected action for eachpresented event.
 11. The non-transitory computer-readable storage deviceof claim 10, wherein the program code for requiring the owner to selectan action for each presented event comprises: program code for providinga default action for at least one presented event; and program code forallowing the owner to modify the default action.
 12. The non-transitorycomputer-readable storage device of claim 8, further comprising: programcode for defining user event criteria; program code for defining userresponse rules; program code for searching for events that satisfy thedefined event criteria; and program code for implementing an associateduser response rule to a select event that satisfies a correspondingevent criteria.
 13. The non-transitory computer-readable storage deviceof claim 12, wherein: the program code for defining user response rulescomprises program code for defining different response rules for eventswithin the buffer period from events within the user absence period; andthe program code for responding to each user event scheduled prior tothe user defining the buffer period in a manner differently fromresponding to user events coming due during the user absence period,comprises: program code for implementing a first user response rule whena select event is due within the user absence period, and implementing asecond user response rule different from the first user response rulewhen the select event is due within the buffer period.
 14. Thenon-transitory computer-readable storage device of claim 8, furthercomprising: program code for defining user event criteria for the userabsence period and the buffer period; program code for defining userresponse rules for the user absence period and the buffer period;program code for configuring a template that comprises: the duration ofthe user absence period and the buffer period; the defined user eventcriteria; and; the defined user response rules.
 15. An apparatus formanaging user events scheduled during a user absence period, theapparatus comprising: a microprocessor coupled to a memory, wherein themicroprocessor is programmed to manage user events scheduled during auser absence period by: identifying a user absence period defined on auser calendar; identifying a buffer period, the buffer period being atleast one of a period of time before the user absence period begins anda period of time after the user absence period concludes; searching atleast one calendaring repository to determine whether there are any userevents with a due date coming due during the user absence period thatwere scheduled prior to a user defining the user absence period;responding, using a processor, to each user event scheduled prior to auser defining the user absence period and having a due date coming dueduring the user absence period; searching at least one calendaringrepository to determine whether there are any user events with a duedate coming due during the buffer period that were scheduled prior tothe user defining the buffer period; and responding, using theprocessor, to each user event scheduled prior to the user defining thebuffer period and having a due date coming due during the buffer period,in a manner differently from responding to user events coming due duringthe user absence period.
 16. The apparatus of claim 15, wherein themicroprocessor implements identifying a buffer period by identifying abuffer period that includes both a period of time before the userabsence period begins and a period of time after the user absence periodconcludes.
 17. The apparatus of claim 15, wherein the microprocessorimplements responding to each user event scheduled prior to a userdefining the user absence period, and responding to each user eventscheduled prior to the user defining the buffer period by: presentingeach scheduled event to an owner of the calendar; requiring the owner toselect an action for each presented event; and implementing the selectedaction for each presented event.
 18. The apparatus of claim 17, whereinthe microprocessor implements requiring the owner to select an actionfor each presented event by: providing a default action for at least onepresented event; and allowing the owner to modify the default action.19. The apparatus of claim 15, wherein the microprocessor is furtherprogrammed to: defining user event criteria; defining user responserules; searching for events that satisfy the defined event criteria; andimplementing an associated user response rule to a select event thatsatisfies a corresponding event criteria.
 20. The apparatus of claim 19,wherein: the microprocessor implements defining user response rules bydefining different response rules for events within the buffer periodfrom events within the user absence period; and the microprocessorimplements responding to each user event scheduled prior to the userdefining the buffer period in a manner differently from responding touser events coming due during the user absence period, by: implementinga first user response rule when a select event is due within the userabsence period, and implementing a second user response rule differentfrom the first user response rule when the select event is due withinthe buffer period.
 21. The apparatus of claim 15, wherein themicroprocessor is further programmed to: defining user event criteriafor the user absence period and the buffer period; defining userresponse rules for the user absence period and the buffer period;configuring a template that comprises: the duration of the user absenceperiod and the buffer period; the defined user event criteria; and; thedefined user response rules.